The majority of office computers today are network-connected to enable fast and efficient communication of information among users. Networking computers together has also enabled distributed data processing, in which a distributed program can execute simultaneously on different computers at the same time. Distributed processing programs further blur the definition between a computer and a network. Such distributed processing is highly desirable, since in practically every computer network, some computers are overburdened while other computers have processing power to spare. The ability to shift processing from heavily utilized computers to computers with spare processing cycles greatly increases throughput and response time.
Each computer on a network typically has a system clock and is capable of maintaining a separate system time from every other computer on the network. Under many conditions, it is irrelevant that different computers on the same network may have different system times. However, in some situations, it is quite important that the system clocks of certain computers, for example network servers, are synchronized. For example, such synchronization can be very important in distributed databases, which maintain integrity and consistency in the database by using time stamps to order transactions. Since updates to a distributed database can be made on different computers at the same time, without time synchronization, it would be impossible to determine in what order updates to the database were made.
One known methodology for achieving time synchronization involves establishing two categories of network computers: time source computers, which are capable of providing a synchronized time to other computers, and time client computers, which obtain their synchronized time from one or more time source computers. Typically, a network computer can be both a time source computer with respect to one or more network computers, and a time client computer with respect to other network computers. Thus, a hierarchy of computers is established in which a server obtains its time from one or more parent, or time source, computers, and which can also operate as a time source to one or more child, or time client, computers. For example, NOVELL provides a time synchronization product which defines four categories of computers: primary servers, secondary servers, clients and reference servers. Primary servers are network computers that synchronize their clocks with each other, and also provide the time to secondary servers or clients. Secondary servers are computers that obtain the time from a primary server and synchronize with the primary server, but do not provide the time to a primary server. Clients are computers that merely obtain the time from a primary or secondary server but do not synchronize with any other nodes. A reference server is a special primary server computer which appears to other computers as an ordinary primary server but does not synchronize its clock with other primary servers. A reference server provides a time reference to which all other servers and clients will eventually synchronize.
The Network Time Protocol (NTP) is another example of a time synchronization methodology which uses time source and time client computers to achieve time synchronization on a network. NTP is a well known and relatively mature mechanism for maintaining time synchronization across computers in a networked environment. Accordingly, various network operating system vendors have implemented NTP as the mechanism by which they establish time synchronization on the network.
Such time source and time client time synchronization methodologies require the ability to modify and/or view the various parameters associated with the time synchronization computers, such as those parameters which define the hierarchy of time source and time client computers. This ability is typically provided through the entry of console commands. In their most basic form, console commands require the entry of predetermined command keywords, and optionally parameters in a specified format. Such console commands are typically vendor independent and differ among each vendors' implementation of time synchronization services. Thus, managing time synchronization services across the network requires knowledge of special commands, and is typically not transferable to other network operating systems, even those which also implement similar time synchronization services. Commands implemented through a console also render it difficult for external programs to interface with the time synchronization service. For example, it may be desirable to develop a graphical user interface program which interacts with the time synchronization service to implement a more user-friendly mechanism for modifying and/or viewing the various parameters associated with the time synchronization services.
As computer networks have proliferated, management of network-attached devices has become more and more important. To ease the management of such network attached devices, management protocols, such as the Simple Network Management Protocol (SNMP), have been established which create a uniform and standard mechanism for managing devices on a network. Under SNMP, each managed device implements a Management Information Base (MIB), which is a database of managed objects associated with the managed device. Each managed object in the MIB is syntactically defined in a MIB listing. The objects in a MIB are queried and/or modified from management station software running on a computer coupled to the network. The MIB listing is used by the management station to determine what objects are implemented in a particular managed device. Through the definitions of the objects in the MIB listing, the management station can generate and communicate to the managed device SNMP GET, SET and GET NEXT requests, to view and/or modify, as appropriate, the objects in the managed device. Thus, SNMP defines a protocol by which individuals familiar with SNMP, or management software which utilizes SNMP, can manage any SNMP-enabled device, without being specially trained to manage each respective device. Another advantage of using a management protocol, such as SNMP, to manage devices, is that the use of such a standard management protocol ensures that software written to interact with the managed device will run on any network which supports the SNMP protocol.